﻿namespace GSC.WebControls
{
    using System;
    /// <summary>
    /// 更新菜单接口。
    /// </summary>
    /// <remarks>更新菜单接口。</remarks>
    public interface IUpdateMenu
    {
        /// <summary>
        /// 获取当前加载的用户菜单控件对象。
        /// </summary>
        /// <remarks>获取当前加载的用户菜单控件对象。</remarks>
        /// <value>System.Web.UI.Control</value>
        System.Web.UI.Control CurrentMenuAscx
        {
            get;
        }
        /// <summary>
        /// 获取当前菜单的层次深度。
        /// </summary>
        /// <remarks>获取当前菜单的层次深度。</remarks>
        /// <value>int</value>
        int CurrentMenuLevel
        {
            get;
        }
        /// <summary>
        /// 加载子菜单。
        /// </summary>
        /// <remarks>加载子菜单。</remarks>
        /// <param name="menuAscx">设置子菜单控件。</param>
        void LoadChildMenu(string menuAscx);
        /// <summary>
        /// 加载父菜单。
        /// </summary>
        /// <remarks>加载父菜单。</remarks>
        void LoadParentMenu();
        /// <summary>
        /// 清除加载子菜单列表。
        /// </summary>
        /// <remarks>清除加载子菜单列表。</remarks>
        void ClearLoadChildMenu();
        /// <summary>
        /// 加载默认菜单控件。
        /// </summary>
        /// <remarks>加载默认菜单控件。</remarks>
        void DefaultUpdateMenuAscx();
        /// <summary>
        /// 加载菜单控件，如果缓存控件存在侧自动加载缓存菜单控件对象。
        /// </summary>
        /// <remarks>加载菜单控件，如果缓存控件存在侧自动加载缓存菜单控件对象。</remarks>
        void UpdateMenuAscx();
        /// <summary>
        /// 加载指定菜单控件。
        /// </summary>
        /// <remarks>加载指定菜单控件。</remarks>
        /// <param name="menuAscx">设置要加载的菜单控件对象。</param>
        void UpdateMenuAscx(string menuAscx);
    }
}
